home *** CD-ROM | disk | FTP | other *** search
- /* Main program for account */
- main()
- {
- account_no = 0;
- client = newvector(enough=6); /* 6 is big enough for Toy Town */
- print(""+12); /* clear screen */
- banner();
- while ((i = input()) != "0") /* Top level interaction loop */
- {
- switch (i)
- {
- case "1": /* Open an account */
- if (account_no<enough)
- new_account();
- else
- print("Sorry, no more accounts.\n");
- break;
- case "2": /* Make a withdrawal */
- if (account_no) withdraw();
- break;
- case "3": /* Get a statement */
- if (account_no) statement();
- break;
- case "4": /* Change password */
- if (account_no) change_password();
- break;
- default:
- print("Sorry. Did not understand.\n");
- break;
- }
- banner();
- }
- print("Goodbye.\n");
- }
-
- banner()
- {
- print("\nWelcome to the Toy Town Bank.\n");
- print("\n 0 Quit\n");
- print(" 1 Open an account\n");
- print(" 2 Make a withdrawal or deposit\n");
- print(" 3 Get a statement\n");
- print(" 4 Change your password\n\n");
- print("Press one of the above numbers then press RETURN.\n\n");
- print("Number :");
- }
-
- new_account()
- {
- local name,amount;
- print("Enter your name: ");
- name = input();
- print("Enter the amount you wish to deposit: ");
- amount = val(input());
- client[account_no++] = new account(amount,name);
- print("Thank you for your custom , ",name,".\n");
- }
-
- withdraw()
- {
- local the_account;
- if ((the_account = get_account())<account_no)
- {
- print("How much do you wish to withdraw? ");
- client[the_account]->withdraw(val(input()));
- }
- }
-
- statement()
- {
- local the_account;
- if ((the_account = get_account())<account_no)
- client[the_account]->statement();
- }
-
- change_password()
- {
- local the_account;
- if ((the_account = get_account())<account_no)
- client[the_account]->change_password();
- }
-
- get_account()
- {
- local name, the_account;
- the_account = 0;
- print("Enter your name: ");
- name = input();
- while ((the_account<account_no)
- && !(client[the_account]->has_owner(name)))
- the_account++;
- if (the_account>=account_no)
- print("We cannot find any account owned by ",name,".\n");
- return the_account;
- }
-